package com.canyou.limiter;

import java.lang.annotation.*;

/**
 * 限流注解
 *
 * @author fy
 * @date 20/07/10 17:14
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimiter {

    /**
     * 请求的key
     *
     * @return
     */
    String key() default "";

//    /**
//     * 每秒请求的次数
//     *
//     * @return
//     */
//    int qps() default 1;

    /**
     * 给定的时间范围 单位(秒)
     *
     * @return
     */
    int period() default 1;

    /**
     * 一定时间内最多访问次数
     *
     * @return
     */
    int count() default 1;

    /**
     * 限流的类型(用户自定义key 或者 请求ip)
     *
     * @return
     */
    LimiterTypeEnum limitType() default LimiterTypeEnum.IP;

}
